package twelve;

/**
 * 整数类型在内存中都以补码类型储存的
 * 正数的反码和补码与原码一样，负数的反码和补码与原码不一样
 *       原码       补码
 *       0000        0
 *       0001        1
 *       0010        2
 *       0011        3
 *       0100        4
 *       0101        5
 *       0110        6
 *       0111        7
 *
 *       1000       -8      1000->1111->10000(相当于-0)
 *       1001       -7      1001->1110->1111
 *       1010       -6
 *       1011       -5
 *       1100       -4
 *       1101       -3
 *       1110       -2
 *       1111       -1      1111->1000->1001
 *
 *
 *
 *       源码     ->      反码       ->      补码
 *     (符号位不变，其余所有位取反)  (在反码的基础上加1)
 *
 *     1000 0011  ->  1111 1100  ->  1111 1101
 *        (-3)    ->     ()      ->     ()
 */




public class HexDemo {
    public static void main(String[] args) {
        int a = 067;
        int b = 0x67;
        int c = 0b0100_1000;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);


        int n = -45;
        System.out.println(Integer.toBinaryString(n)); //2进制显示
        System.out.println(n); //10进制显示
        int max = Integer.MAX_VALUE;
        System.out.println(max);
        System.out.println(Integer.toBinaryString(max));

    }
}
